var ready_bet       = {};   // 预投注项对象
var ready_bet_index = 1;    // 每次确定选号都加入到预投注项中，同彩种同玩法一样
// 手动投注，检查有效的投注号
function check_valid_bet(obj='', func=''){
	// 初始化预投注项对象
	var tmp        = {};
	var item       = {
			'bet'  : [],
			'check': 'success',
	};
	var index      = 0;
	// 统计特殊投注的有效注数
	var sum        = 0;
	// 临时存储数据信息，避免每次写很长的调用
	var pack       = '';
	// 解读预投注信息为ready_bet格式
	ready_bet   = {'bet_name': user_play, 'bet_item': {}, 'bet_money_unit': 0, 'bet_zhushu': 0, 'multiple': 0, 'maxwinner': 0, 'period':resData.lotting.period, 'bet_amount':'', 'betting':betting[user_play] };
	var mast_choice_num_controll = 0;
	
	switch(user_play){
		case 'YX-DWD|FS':
			// 一星：定位胆-复试
			if(!$.isEmptyObject(betting[user_play][1])){
				$.each(betting[user_play][1], function (i1, v1){
					tmp[index]       = {'bet':[v1,'*','*','*','*'], 'check':'success'};
					index++;
				});
			}
			if(!$.isEmptyObject(betting[user_play][2])){
				$.each(betting[user_play][2], function (i2, v2){
					tmp[index]       = {'bet':['*',v2,'*','*','*'], 'check':'success'};
					index++;
				});
			}
			if(!$.isEmptyObject(betting[user_play][3])){
				$.each(betting[user_play][3], function (i3, v3){
					tmp[index]       = {'bet':['*','*',v3,'*','*'], 'check':'success'};
					index++;
				});
			}
			if(!$.isEmptyObject(betting[user_play][4])){
				$.each(betting[user_play][4], function (i4, v4){
					tmp[index]       = {'bet':['*','*','*',v4,'*'], 'check':'success'};
					index++;
				});
			}
			if(!$.isEmptyObject(betting[user_play][5])){
				$.each(betting[user_play][5], function (i5, v5){
					tmp[index]       = {'bet':['*','*','*','*',v5], 'check':'success'};
					index++;
				});
			}
			break;
		case 'QE-ZHI_X|FS':
			// 前二玩法：前三组选复式
		case 'HE-ZHI_X|FS':
			// 后二玩法：前三组选复式
			if($.isEmptyObject(betting[user_play][1]) || $.isEmptyObject(betting[user_play][2])) break;
			$.each(betting[user_play][1], function (i1, v1){
				$.each(betting[user_play][2], function (i2, v2){
					tmp[index]       = {'bet':[v1, v2], 'check':'success'};
					index++;
				});
			});
			break;
		case 'QE-ZHI_X|DS':
			break;
		case 'QE-ZHI_X|HZ':
			// 前二：和值玩法，采用循环计算判断有效投注数
		case 'HE-ZHI_X|HZ':
			// 后二：和值玩法
			$.each(betting[user_play][1], function (i, v){
				sum = 0;
				for(var z = 0; z <= 9; z++){
					for(var x = 0; x <= 9; x++){
						if(z+x == v){
							sum++;
						}
					}
				}
				tmp[index]       = {'bet':[v], 'nums':sum, 'check':'success'};
				index++;
			});
			break;
		case 'QE-ZHI_X|KD':
			// 前二：跨度玩法，因为有顺序问题，所以，循环一次后计算出来的数据*2
		case 'HE-ZHI_X|KD':
			// 后二：跨度玩法，
			$.each(betting[user_play][1], function (i, v){
				sum = 0;
				for(var z = 9; z >= v; z--){
					for(var x = 0; x <= 9; x++){
						if((z - x) == v){
							sum +=2;
						}
					}
				}
				tmp[index]       = {'bet':[v], 'nums':sum, 'check':'success'};
				index++;
			});
			break;
		case 'QE-ZU_X|FS':
			// 前二：组选复式， 至少需要两个选择号
		case 'HE-ZU_X|FS':
			// 后二：组选复式
			if(betting[user_play][1].length < 2) break;
			pack = betting[user_play][1];
			for(var z = 0; z < pack.length - 1; z++){
				for(var x = z+1; x < pack.length; x++){
					tmp[index]       = {'bet':[pack[z], pack[x]], 'check':'success'};
					index++;
				}
			}
			break;
		case 'QE-ZU_X|DS':
			break;
		case 'QE-ZU_X|HZ':
			// 前二：组选和值，两数之和等于所选值为有效注数且两相加之数不能相同
		case 'HE-ZU_X|HZ':
			// 后二：组选和值，
			$.each(betting[user_play][1], function (i, v){
				sum = 0;
				for(var z = 0; z <= 9; z++){
					for(var x = 0; x <= 9; x++){
						if(z == x) continue;
						if((z+x) == v){
							sum++;
						}
					}
				}
				// sum数值/2 是因为统计有重复，比如0+2 与2+0  
				tmp[index]       = {'bet':[v], 'nums':sum/2, 'check':'success'};
				index++;
			});
			break;
		case 'QE-ZU_X|BD':
			// 前二：组选包胆，选一个号码，并且sum数量只能是9；
		case 'HE-ZU_X|BD':
			// 后二：组选包胆，
			if(betting[user_play][1].length < 1) break;
			if(betting[user_play][1].length > 1){
				// 超出最多1个的选项， 弹出最后一个，然后将数据清空后置回去，确保投注项只有一个
				var bet_now = betting[user_play][1].pop();
				var bet_out = betting[user_play][1].shift();
				betting[user_play][1].push(bet_now);
				// 更新页面选中样式
				$('.tag_choice_item[ami="' + bet_out + '"]').removeClass('curr');
			}
			tmp[index]       = {'bet':[bet_now], 'nums':9, 'check':'success'};
			index++;
			break;
		case 'QS-ZHI_X|FS':
			// 前三：直选复式【必须：三组数据，每组都不能为空】
		case 'ZS-ZHI_X|FS':
			// 中三：直选复式
		case 'HS-ZHI_X|FS':
			// 后三：直选复式
			if($.isEmptyObject(betting[user_play][1]) || $.isEmptyObject(betting[user_play][2]) || $.isEmptyObject(betting[user_play][3])) break;
			$.each(betting[user_play][1], function (i1, v1){
				$.each(betting[user_play][2], function (i2, v2){
					$.each(betting[user_play][3], function (i3, v3){
						tmp[index]       = {'bet':[v1, v2, v3], 'check':'success'};
						index++;
					});
				});
			});
			break;
		case 'QS-ZHI_X|HZ':
			// 前三：直选和值
		case 'ZS-ZHI_X|HZ':
			// 中三：直选和值
		case 'HS-ZHI_X|HZ':
			// 后三：直选和值
			if($.isEmptyObject(betting[user_play][1])) break;
			$.each(betting[user_play][1], function (i, v){
				sum = 0;
				for(var z = 0; z <= 9; z++){
					for(var x = 0; x <= 9; x++){
						for(var c = 0; c <= 9; c++){
							if((z+x+c) == v) sum++;
						}
					}
				}
				// sum数值/2 是因为统计有重复，比如0+2 与2+0  
				tmp[index]       = {'bet':[v], 'nums':sum, 'check':'success'};
				index++;
			});
			break;
		case 'QS-ZHI_X|KD':
			// 前三：直选跨度，如果计算，次数太多， 所以写到配置文件
		case 'ZS-ZHI_X|KD':
			// 中三：直选跨度
		case 'HS-ZHI_X|KD':
			// 后三：直选跨度
			$.each(betting[user_play][1], function (i, v){
				tmp[index]       = {'bet':[v], 'nums':parseInt(play_follow.base.item[1].every_bets[v]), 'check':'success'};
				index++;
			});
			break;
		case 'QS-ZU_X|HZ':
			// 前三：组选和值【不含同号，也就是豹子】
		case 'ZS-ZU_X|HZ':
			// 中三：组选和值
		case 'HS-ZU_X|HZ':
			// 后三：组选和值
			if($.isEmptyObject(betting[user_play][1])) break;
			$.each(betting[user_play][1], function (i, v){
				tmp[index]       = {'bet':[v], 'nums':parseInt(play_follow.base.item[1].every_bets[v]), 'check':'success'};
				index++;
			})
			break;
		case 'QS-ZU_X|ZS':
			// 前三：组选组三
		case 'ZS-ZU_X|ZS':
			// 中三：组选组三
		case 'HS-ZU_X|ZS':
			// 后三：组选组三
			if (betting[user_play][1].length < 2) break;
			$.each(betting[user_play][1], function (i1, v1){
				$.each(betting[user_play][1], function (i2, v2){
					if(v1 == v2){
						return true;
					}
					tmp[index]       = {'bet':[v1, v1, v2], 'check':'success'};
					index++;
				});
			});
			break;
		case 'QS-ZU_X|ZL':
			// 前三：组选组六
		case 'ZS-ZU_X|ZL':
			// 中三：组选组六
		case 'HS-ZU_X|ZL':
			// 后三：组选组六
			if (betting[user_play][1].length < 3) break;
			pack = betting[user_play][1];
			for(var z = 0; z < pack.length - 2; z++){
				for(var x = z+1; x < pack.length; x++){
					for(var c = x+1; c < pack.length; c++){
						tmp[index]       = {'bet':[pack[z], pack[x], pack[c]], 'check':'success'};
						index++;
					}
				}
			}
			break;
		case 'QS-ZU_X|BD':
			// 前三：组选包胆
		case 'ZS-ZU_X|BD':
			// 中三：组选包胆
		case 'HS-ZU_X|BD':
			// 后三：组选包胆
			if($.isEmptyObject(betting[user_play][1])) break;
			if(betting[user_play][1].length > 1){
				// 超出最多1个的选项， 弹出最后一个，然后将数据清空后置回去，确保投注项只有一个
				var bet_now = betting[user_play][1].pop();
				var bet_out = betting[user_play][1].shift();
				betting[user_play][1].push(bet_now);
				// 更新页面选中样式
				$('.tag_choice_item[ami="' + bet_out + '"]').removeClass('curr');
			}
			$.each(betting[user_play][1], function (i, v){
				tmp[index]       = {'bet':[v], 'nums':parseInt(play_follow.base.item[1].every_bets[v]), 'check':'success'};
				index++;
			})
			break;
		case 'QS-BDW|YM':
			// 前三：一码不定位
		case 'ZS-BDW|YM':
			// 中三：一码不定位
		case 'HS-BDW|YM':
			// 后三：一码不定位
		case 'SI_X-BDW|YM':
			// 四星：一码不定位
		case 'WU_X-BDW|YM':
			// 五星：一码不定位
			if($.isEmptyObject(betting[user_play][1])) break;
			$.each(betting[user_play][1], function (i,v){
				tmp[index]       = {'bet':[v], 'check':'success'};
				index++;
			});
			break;
		case 'QS-BDW|EM':
			// 前三：二码不定位
		case 'ZS-BDW|EM':
			// 中三：二码不定位
		case 'HS-BDW|EM':
			// 后三：二码不定位
		case 'SI_X-BDW|EM':
			// 四星：二码不定位
		case 'WU_X-BDW|EM':
			// 五星：二码不定位
			pack = betting[user_play][1];
			if(pack.length < 2) break;
			for(var z = 0; z < pack.length - 1; z++){
				for(var x = z + 1; x < pack.length; x++){
					tmp[index]       = {'bet':[pack[z], pack[x]], 'check':'success'};
					index++;
				}
			}
			break;
		case 'WU_X-BDW|SM':
			// 五星：三码不定位
			pack = betting[user_play][1];
			if(pack.length < 3) break;
			for(var a = 0; a < pack.length - 2; a++){
				for(var s = a + 1; s < pack.length; s++){
					for(var d = s + 1; d < pack.length; d++){
						tmp[index]       = {'bet':[pack[a], pack[s], pack[d]], 'check':'success'};
						index++;
					}
				}
			}
			break;
		case 'SI_X-ZHI_X|FS':
			// 四星：直选复式
			if($.isEmptyObject(betting[user_play][1]) || $.isEmptyObject(betting[user_play][2]) || 
					$.isEmptyObject(betting[user_play][3]) || $.isEmptyObject(betting[user_play][4]) ) break;
			$.each(betting[user_play][1], function (i1, v1){
				$.each(betting[user_play][2], function (i2, v2){
					$.each(betting[user_play][3], function (i3, v3){
						$.each(betting[user_play][4], function (i4, v4){
							tmp[index]       = {'bet':['*',v1, v2, v3, v4], 'check':'success'};
							index++;
						});
					});
				});
			});
			break;
		case 'SI_X-ZU_X|ZX24':
			// 四星：组选24
			pack = betting[user_play][1];
			if(pack.length < 4) break;
			for(var z = 0; z < pack.length - 3; z++){
				for(var x = z + 1; x < pack.length; x++){
					for(var c = x + 1; c < pack.length; c++){
						for(var v = c + 1; v < pack.length; v++){
							tmp[index]       = {'bet':[pack[z], pack[x], pack[c], pack[v]], 'check':'success'};
							index++;
						}
					}
				}
			}
			break;
		case 'SI_X-ZU_X|ZX12':
			// 四星：组选12
			if($.isEmptyObject(betting[user_play][1])) break;
			pack = betting[user_play][2];
			if(pack.length < 2) break;
			$.each(betting[user_play][1], function (i, v){
				for(var a = 0; a < pack.length - 1; a++){
					for(var s = a + 1; s < pack.length; s++){
						if(pack[a] == v || pack[s] == v) continue;
//						console.log(pack[a] + ' - ' + pack[s] + v + ' - ' + v);
						tmp[index]       = {'bet':[pack[a], pack[s], v, v], 'check':'success'};
						index++;
					}
				}
			});
			break;
		case 'SI_X-ZU_X|ZX6':
			// 四星：组选6
			pack = betting[user_play][1];
			if(pack.length < 2) break;
			for(var a = 0; a < pack.length - 1; a++){
				for(var s = a + 1; s < pack.length; s++){
					tmp[index]       = {'bet':[pack[a], pack[a], pack[s], pack[s]], 'check':'success'};
					index++;
				}
			}
			break;
		case 'SI_X-ZU_X|ZX4':
			// 四星：组选4
			if($.isEmptyObject(betting[user_play][1]) || $.isEmptyObject(betting[user_play][2])) break;
			$.each(betting[user_play][1], function (i1, v1){
				$.each(betting[user_play][2], function (i2, v2){
					if(v1 == v2) return true;
					tmp[index]       = {'bet':[v1, v1, v1, v2], 'check':'success'};
					index++;
				});
			});
			break;
		case 'WU_X-ZHI_X|FS':
			// 五星：直选复式
			if($.isEmptyObject(betting[user_play][1]) || $.isEmptyObject(betting[user_play][2]) || 
					$.isEmptyObject(betting[user_play][3]) || $.isEmptyObject(betting[user_play][4]) || 
					$.isEmptyObject(betting[user_play][5]) ) break;
			$.each(betting[user_play][1], function (i1, v1){
				$.each(betting[user_play][2], function (i2, v2){
					$.each(betting[user_play][3], function (i3, v3){
						$.each(betting[user_play][4], function (i4, v4){
							$.each(betting[user_play][5], function (i5, v5){
								tmp[index]       = {'bet':[v1, v2, v3, v4, v5], 'check':'success'};
								index++;
							})
						})
					})
				})
			})
			break;
		case 'WU_X-ZU_X|ZX120':
			// 五星：组选120
			pack = betting[user_play][1];
			if(pack.length < 5) break;
			for(var a = 0; a < pack.length - 4; a++){
				for(var s = a + 1; s < pack.length; s++){
					for(var d = s + 1; d < pack.length; d++){
						for(var f = d + 1; f < pack.length; f++){
							for(var g = f + 1; g < pack.length; g++){
								tmp[index]       = {'bet':[pack[a], pack[s], pack[d], pack[f], pack[g]], 'check':'success'};
								index++;
							}
						}
					}
				}
			}
			break;
		case 'WU_X-ZU_X|ZX60':
			// 五星：组选60
			pack = betting[user_play][2];
			if($.isEmptyObject(betting[user_play][1])) break;
			if(pack.length < 3) break;
			$.each(betting[user_play][1], function (i, v){
				for(var a = 0; a < pack.length - 2; a++){
					for(var s = a + 1; s < pack.length; s++){
						for(var d = s + 1; d < pack.length; d++){
							if(v == pack[a] || v == pack[s] || v == pack[d]) continue;
							tmp[index]       = {'bet':[v, v, pack[a], pack[s], pack[d]], 'check':'success'};
							index++;
						}
					}
				}
			});
			break;
		case 'WU_X-ZU_X|ZX30':
			// 五星：组选30
			pack = betting[user_play][1];
			if(pack.length < 2) break;
			if($.isEmptyObject(betting[user_play][2])) break;
			
			for(var a = 0; a < pack.length - 1; a++){
				for(var s = a + 1; s < pack.length; s++){
					$.each(betting[user_play][2], function (i, v){
						if(pack[a] == v || pack[s] == v) return true;
						tmp[index]       = {'bet':[pack[a], pack[a], pack[s], pack[s], v], 'check':'success'};
						index++;
					})
				}
			}
			break;
		case 'WU_X-ZU_X|ZX20':
			// 五星：组选20
			pack = betting[user_play][2];
			if($.isEmptyObject(betting[user_play][1])) break;
			if(pack.length < 2) break;
			$.each(betting[user_play][1], function (i, v){
				for(var a = 0; a < pack.length - 1; a++){
					for(var s = a + 1; s < pack.length; s++){
						if(pack[a] == v || pack[s] == v) continue;
						tmp[index]       = {'bet':[v, v, v, pack[a], pack[s]], 'check':'success'};
						index++;
					}
				}
			});
			break;
		case 'WU_X-ZU_X|ZX10':
			// 五星：组选10
			if($.isEmptyObject(betting[user_play][1]) || $.isEmptyObject(betting[user_play][2])) break;
			$.each(betting[user_play][1], function (i1, v1){
				$.each(betting[user_play][2], function (i2, v2){
					if(v1 == v2) return true;
					tmp[index]       = {'bet':[v1, v1, v1, v2, v2], 'check':'success'};
					index++;
				})
			})
			break;
		case 'WU_X-ZU_X|ZX5':
			// 五星：组选5
			if($.isEmptyObject(betting[user_play][1]) || $.isEmptyObject(betting[user_play][2])) break;
			$.each(betting[user_play][1], function (i1, v1){
				$.each(betting[user_play][2], function (i2, v2){
					if(v1 == v2) return true;
					tmp[index]       = {'bet':[v1, v1, v1, v1, v2], 'check':'success'};
					index++;
				})
			})
			break;
		case 'WU_X-QW|YFFS':
			// 五星：一帆风顺
		case 'WU_X-QW|HSCS':
			// 五星：好事成双
		case 'WU_X-QW|SXBX':
			// 五星：三星报喜
		case 'WU_X-QW|SJFC':
			// 五星四季发财
			if($.isEmptyObject(betting[user_play][1])) break;
			$.each(betting[user_play][1], function (i,v){
				tmp[index]       = {'bet':[v], 'check':'success'};
				index++;
			})
			break;
		case 'DXDS-DXDS|QE':
			// 大小单双：前二
		case 'DXDS-DXDS|HE':
			// 大小单双：前二
			if($.isEmptyObject(betting[user_play][1]) || $.isEmptyObject(betting[user_play][2]) ) break;
			$.each(betting[user_play][1], function (i1, v1){
				$.each(betting[user_play][2], function (i2, v2){
					tmp[index]       = {'bet':[v1, v2], 'check':'success'};
					index++;
				})
			})
			break;
		case 'DXDS-DXDS|QS':
			// 大小单双：前三
		case 'DXDS-DXDS|HS':
			// 大小单双：后三
			if($.isEmptyObject(betting[user_play][1]) || $.isEmptyObject(betting[user_play][2]) || $.isEmptyObject(betting[user_play][3])) break;
			$.each(betting[user_play][1], function (i1, v1){
				$.each(betting[user_play][2], function (i2, v2){
					$.each(betting[user_play][3], function (i3, v3){
						tmp[index]       = {'bet':[v1, v2, v3], 'check':'success'};
						index++;
					})
				})
			})
			break;
			
		default:
			break;
	}
	ready_bet.bet_item = tmp;
	bet_jisuan();
	if($.isEmptyObject(ready_bet.bet_item)){
		// 初始化投注预览
		reBetView();
	}
}

function check_import_betting(){
	var tmp         = [];
	var import_str  = $('.tag_import_content').val();
	if(!import_str) { return; }
	// 解析提交内容（先将输入内容转换为统一格式）
	var reg         = /;/g;
	import_str      = import_str.replace(reg, ' ');
	reg             = /,/g;
	import_str      = import_str.replace(reg, ' ');
	var outer       = import_str.split('\n');
	var bt          = '';
	var item        = [];
	var checkRepeat = [];
	// 投注号长度数
	var nums        = 0;
	betting[user_play]     = {
		'1'   : [],
		'2'   : [],
		'3'   : [],
		'4'   : [],
		'5'   : [],
	};
	$.each(outer, function (i, v){
		if(!v){ return true; }
		// 半初始化数据
		item       = {
				'bet': [],
				'check': 'success',
				'unit': [],
		};
		
		bt = v.split(' ');
		// 清除多余数据（主要是空格数据）
		var tmp_index = 1;
		$.each(bt, function (bi, bv){
			bv    = (bv.trim()).replace('\r\n','');
			if( bv == '' ){ return true; }
			if( bv < 0 || bv > 9 || isNaN(bv) ){
				// 手动设置投注信息有误，当前一注跳过
				item.check = 'error';
			}
			item.bet.push(bv);
			// 手动输入投注号， 不需要计算，直接检查该投注号是否有效即可
			
			if(tmp_index == 1){
				betting[user_play][1].push(bv);
			}else if(tmp_index == 2){
				betting[user_play][2].push(bv);
			}else if(tmp_index == 3){
				betting[user_play][3].push(bv);
			}else if(tmp_index == 4){
				betting[user_play][4].push(bv);
			}else if(tmp_index == 5){
				betting[user_play][5].push(bv);
			}
			tmp_index++;
		})
		// 检查判断当前输入的投注号是否符合玩法规范
		switch(user_play){
			case 'QE-ZHI_X|DS':
			case 'HE-ZHI_X|DS':
				// 前二/后二：直选单式
				nums = 2;
				break;
			case 'QE-ZU_X|DS':
			case 'HE-ZU_X|DS':
				// 前二/后二：组选单式
				nums = 2;
				// 不能出现重复号
				if(item.bet[0] == item.bet[1]) item.check = 'error';
				break;
			case 'QS-ZHI_X|DS':
			case 'ZS-ZHI_X|DS':
			case 'HS-ZHI_X|DS':
				// 前三/中三/后三：直选单式
				nums = 3;
				break;
			case 'QS-ZU_X|HHZX':
			case 'ZS-ZU_X|HHZX':
			case 'HS-ZU_X|HHZX':
				// 前三/中三/后三：组选混合组选
				nums = 3;
				break;
			case 'QS-ZU_X|ZSDS':
			case 'ZS-ZU_X|ZSDS':
			case 'HS-ZU_X|ZSDS':
				// 前三/中三/后三：组选组三单式
				nums = 3;
				break;
			case 'QS-ZU_X|ZLDS':
			case 'ZS-ZU_X|ZLDS':
			case 'HS-ZU_X|ZLDS':
				// 前三/中三/后三：组选组六单式
				nums = 3;
				break;
			case 'SI_X-ZHI_X|DS':
				// 四星：直选单式
				nums = 4;
				break;
			case 'WU_X-ZHI_X|DS':
				// 五星：直选单式
				nums = 5;
				break;
			default:
				break;
		}
		if(item.bet.length != nums) item.check = 'error';
		oddsArr.push(play_follow.base.winner_money);
		tmp.push(item);
	})
	ready_bet = {'bet_name': user_play, 'bet_item': tmp, 'bet_unit': 0, 'bet_money_unit': 0, 'bet_zhushu': 0, 'multiple': 0, 'maxwinner': 0, 'period':resData.lotting.period, 'bet_amount':'', 'betting':betting[user_play] };
	// 玩法中每注号码中号码数量必须是nums才符合当前选择玩法
	var nums = 0;
	ready_bet.bet_item = tmp;
	bet_jisuan();
	if($.isEmptyObject(ready_bet.bet_item)){
		// 初始化投注预览
		reBetView();
	}
}
